/*
 * Copyright (C) 2011, EADS France
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 */

package xowl.interpreter.impl;

import xowl.utils.Values;
import xowl.interpreter.QuerySolution;
import java.util.List;
import xowl.interpreter.XOWLException;
import xowl.lang.actions.ArrayElement;
import xowl.lang.actions.BAnd;
import xowl.lang.actions.BNot;
import xowl.lang.actions.BOr;
import xowl.lang.actions.BXOr;
import xowl.lang.actions.CodeVariable;
import xowl.lang.actions.Concat;
import xowl.lang.actions.Contains;
import xowl.lang.actions.Different;
import xowl.lang.actions.Divide;
import xowl.lang.actions.EntityForIRI;
import xowl.lang.actions.Equal;
import xowl.lang.actions.Greater;
import xowl.lang.actions.GreaterEqual;
import xowl.lang.actions.IRIOf;
import xowl.lang.actions.Invoke;
import xowl.lang.actions.Execute;
import xowl.lang.actions.LengthOf;
import xowl.lang.actions.Lesser;
import xowl.lang.actions.LesserEqual;
import xowl.lang.actions.Minus;
import xowl.lang.actions.Modulus;
import xowl.lang.actions.Mult;
import xowl.lang.actions.NewEntity;
import xowl.lang.actions.NewIndividual;
import xowl.lang.actions.Plus;
import xowl.lang.actions.Query;
import xowl.lang.actions.QueryVariable;
import xowl.lang.actions.Select;
import xowl.lang.actions.Slice;
import xowl.lang.interop.JavaInvokation;
import xowl.lang.interop.NewObject;
import xowl.lang.interop.ObjectField;
import xowl.lang.interop.StaticField;
import xowl.lang.owl2.Expression;
import xowl.lang.runtime.Array;
import xowl.lang.runtime.Entity;
import xowl.lang.runtime.Individual;
import xowl.lang.runtime.JavaObject;
import xowl.lang.runtime.Literal;
import xowl.lang.runtime.Value;

/**
 *
 * @author Laurent WOUTERS
 */
public abstract class StaticEvaluator extends AbstractEvaluator {
    @Override public boolean can(Expression exp) { return Values.isStaticExpression(exp); }
    @Override public boolean can(Query exp) { return false; }

    @Override protected Value eval_Contains(Evaluator parent, Contains query) throws XOWLException { throw getNotImplemented(); }
    @Override protected Value eval_Invoke(Evaluator parent, Invoke expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Value eval_Execute(Evaluator parent, Execute expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Value eval_QueryVariable(Evaluator parent, QueryVariable expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Value eval_CodeVariable(Evaluator parent, CodeVariable expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Value eval_ArrayElement(Evaluator parent, ArrayElement expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Entity eval_NewEntity(Evaluator parent, NewEntity expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Entity eval_EntityForIRI(Evaluator parent, EntityForIRI expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Individual eval_NewIndividual(Evaluator parent, NewIndividual expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_Plus(Evaluator parent, Plus expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_Minus(Evaluator parent, Minus expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_Mult(Evaluator parent, Mult expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_Divide(Evaluator parent, Divide expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_Modulus(Evaluator parent, Modulus expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_BAnd(Evaluator parent, BAnd expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_BOr(Evaluator parent, BOr expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_BXOr(Evaluator parent, BXOr expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_BNot(Evaluator parent, BNot expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_Equal(Evaluator parent, Equal expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_Different(Evaluator parent, Different expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_Greater(Evaluator parent, Greater expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_GreaterEqual(Evaluator parent, GreaterEqual expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_Lesser(Evaluator parent, Lesser expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_LesserEqual(Evaluator parent, LesserEqual expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_IRIOf(Evaluator parent, IRIOf expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Literal eval_LengthOf(Evaluator parent, LengthOf expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Array eval_Array(Evaluator parent, xowl.lang.actions.Array expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Array eval_Concat(Evaluator parent, Concat expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected Array eval_Slice(Evaluator parent, Slice expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected JavaObject eval_JavaInvokation(Evaluator parent, JavaInvokation expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected JavaObject eval_NewObject(Evaluator parent, NewObject expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected JavaObject eval_ObjectField(Evaluator parent, ObjectField expression) throws XOWLException { throw getNotImplemented(); }
    @Override protected JavaObject eval_StaticField(Evaluator parent, StaticField expression) throws XOWLException { throw getNotImplemented(); }
    @Override public List<QuerySolution> select(Evaluator parent, Select query) throws XOWLException { throw getNotImplemented(); }
}
